package com.an.test;

import java.util.Random;
import java.util.Scanner;

/**
 * @author Li
 * @Date 2023/4/8 15:00
 */
public class OverSeven {
    public static void main(String[] args) {
        /**
         * 逢7跳过
         * 键盘输入随机数的范围,系统将会在此范围内随机选择一个数开始
         * 判断是否含有7或者为7的倍数
         * 有就打印，没有就继续++
         * 100后结束
         */

        int start = getIntoNum("开始");
        int end =getIntoNum("结束");
        int num = getRandomNum(start,end);
//        int num = getIntoNum("输入一个开始数:");
//        System.out.println("开始数为:"+num);
        print(num);
    }

    /**
     * 打印
     * @param num
     */
    private static void print(int num) {
//        boolean right = judge(num);//判断获取的随机数是否为7的倍数或者还有7
        while (num<=100){ //条件是num小于等于100，执行。
            if (judge(num)){  //判断随机数含有7或是7的倍数，就打印过
                System.out.println("过");
            }else {         //否则就打印该数
                System.out.println(num);
            }
            num++;
        }
        System.out.println("num等于100，游戏结束");
    }

    /**
     * 用判断获取到的随机数是否是7的倍数或者还有7
     * @param num
     * @return
     */
    private static boolean judge(int num) {
        if (num%7==0){
            return true;
        }else if (num/10%10==7){
            return true;
        }else return num % 10 == 7;
//            return num % 10 == 7 ? true : false; //三元运算符
    }

    /**
     * 得到键盘输入随机数范围的开始值和结束值
     * @param str
     * @return
     */
    private static int getIntoNum(String str) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入随机数"+str+"值");
        return scanner.nextInt();
    }

    /**
     * 得到start与end之间的随机数
     * @param start
     * @param end
     * @return
     */
    private static int getRandomNum(int start,int end) {
        Random random = new Random();
        return random.nextInt(end-start)+start; //得到start与end之间的随机数计算方式
    }

}
